Unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Client-server system configurations provide for centralized data management and storage (e.g., databases, tables, etc.). Typically, centralized data management and storage systems are implemented on a server computer or in a cloud computing environment that can communicate over one or more proprietary or open networks. Client computing devices (e.g., desktop computers, laptop computers, tablet computers, etc.) executing a client application specifically designed to communicate with the centralized data management and storage system can securely connect to the system over the networks.
In general, the purpose of the client application is to provide users with access (e.g., read, write, update, etc.) to data stored in a remote system (e.g., a business system). For example, a user, through the client application, might request that the information in a particular data table in the centralized data management and storage system be displayed in a UI on his client computing device. Information from the particular table may be displayed to the user in a particular graphical user interface (GUI). To handle the user input received from the user, render the GUI, and populate the GUI with the information from the table, some systems implement a UI agent-UI session configuration. In such configurations, the UI agent is instantiated on the client computing device and communicates with a corresponding UI session instantiated in remote application server with access to the centralized data management and storage system. The UI session handles requests from the UI agent for information or analysis of information in a data source, and in response, executes corresponding transactions on the data stores. The UI session may then send the resulting information back the UI agent to be displayed in the UI.
Because of the request-response nature of communication between the UI agent and the UI session, the information displayed in the corresponding GUI is only valid as long as the underlying data in the data source is unchanged. Because the data table may be available to a number of client computing devices simultaneously, it is possible that the data in the data source may be changed, updated, or deleted after the transaction for information was completed and the information is displayed. In particular, the information displayed in a GUI may no longer accurately represent the data if another UI session, or other application, has performed altering transactions (e.g., write, update, or replace functions) on the data source since the information was obtained. To ensure that the information displayed in the GUI includes the most timely data from the underlying data table, is often necessary to manually or periodically re-execute or update the transaction in order to obtain the most current data from the data table. Manually or periodically re-executing or updating the transaction can cause undesirable overuse of the available computing and network resources at all levels. The overuse of computing and network resources not only diminishes the performance of the centralized data management and storage system, but also decreases the user experience in the form of lag and delays.